1. Technical Field
The present invention relates generally to an improved data processing system and in particular to an improved method and apparatus for transferring data. Still more particularly, the present invention relates to an improved method, apparatus, and computer instructions for transferring data from one partition to another partition in a logically partitioned data processing system.
2. Description of Related Art
Increasingly large symmetric multi-processor data processing systems, such as IBM eServer P690, available from International Business Machines Corporation, DHP9000 Superdome Enterprise Server, available from Hewlett-Packard Company, and the Sunfire 15K server, available from Sun Microsystems, Inc. are not being used as single large data processing systems. Instead, these types of data processing systems are being partitioned and used as smaller systems. These systems are also referred to as logical partitioned (LPAR) data processing systems. A logical partitioned functionality within a data processing system allows multiple copies of a single operating system or multiple heterogeneous operating systems to be simultaneously run on a single data processing system platform. A partition, within which an operating system image runs, is assigned a non-overlapping subset of the platforms resources. These platform allocatable resources include one or more architecturally distinct processors with their interrupt management area, regions of system memory, and input/output (I/O) adapter bus slots. The partition's resources are represented by the platform's firmware to the operating system image.
Each distinct operation system or image of an operating system running within a platform is protected from each other such that software errors on one logical partition cannot affect the correct operations of any of the other partitions. This protection is provided by allocating a disjointed set of platform resources to be directly managed by each operating system image and by providing mechanisms for insuring that the various images cannot control any resources that have not been allocated to that image. Furthermore, software errors in the control of an operating system's allocated resources are prevented from affecting the resources of any other image.
Thus, each image of the operating system or each different operating system directly controls a distinct set of allocatable resources within the platform. With respect to hardware resources in a logical partitioned data processing system, these resources are disjointly shared among various partitions. These resources may include, for example, input/output (I/O) adapters, memory DIMMs, non-volatile random access memory (NVRAM), and hard disk drives. Each partition within an LPAR data processing system may be booted and shut down over and over without having to power-cycle the entire data processing system.
In logical partitioned environments, one partition typically hosts input/output (I/O) requests, such as those received from a network adapter associated with this partition. The data is copied from the pinned memory region for the network adapter to a local memory region for the partition hosting the I/O requests. This partition is typically referred to as the hosting partition. If the data has been requested by another partition other than the hosting partition, the data is copied from the local memory region for the hosting partition to the local memory region for the requesting partition.
This currently used system for transferring data requires an additional data copy operation when compared to non-partitioned systems. In a non-partitioned system, the data is copied from the memory region for the adapter to the main memory where the data is available for use by an application for processing. In contrast, in a logical partitioned data processing system, a further copy operation is required to move the data from the memory region associated with the hosting partition to the memory region for the partition requesting the data.
This additional operation requires additional processor resources and time. As a result, performance degradation may result when a large number of data requests occur. Therefore, it would be advantageous to have an improved method, apparatus, and computer instructions for providing a requesting partition access to data in a logical partitioned data processing system.